package com.obelisco.vista.seguridad;

import java.util.List;
import java.util.ResourceBundle;

import com.obelisco.modelo.data.Operacion;
import com.obelisco.modelo.servicios.seguridad.IServicioAdministrarOperaciones;
import com.obelisco.vista.componentes.ComponenteDatosListener;
import com.obelisco.vista.componentes.PaneSubirImagen;
import com.obelisco.vista.componentes.TipoFuncion;
import com.obelisco.vista.controles.BindingTextField;

import nextapp.echo2.app.ContentPane;
import echopointng.ContentPaneEx;
import echopointng.ImageMap;
import nextapp.echo2.app.TextField;
import nextapp.echo2.app.Grid;
import nextapp.echo2.app.Label;
import nextapp.echo2.app.layout.GridLayoutData;
import nextapp.echo2.app.Alignment;
import nextapp.echo2.app.ResourceImageReference;

public class PaneOperacion extends ContentPaneEx implements
		ComponenteDatosListener {

	private ResourceBundle resourceBundle;

	private PaneSubirImagen paneImagen;

	private BindingTextField txtCodigo;

	private BindingTextField txtNombre;

	private IServicioAdministrarOperaciones servicioAdministrarOperaciones;

	/**
	 * Creates a new <code>PaneOperacion</code>.
	 */
	public PaneOperacion() {
		super();

		// Add design-time configured components.
		initComponents();
	}

	/**
	 * Configures initial state of component. WARNING: AUTO-GENERATED METHOD.
	 * Contents will be overwritten.
	 */
	private void initComponents() {
		Grid grdDatos = new Grid();
		grdDatos.setStyleName("Obelisco.Grid");
		add(grdDatos);
		Label label1 = new Label();
		label1.setText("Codigo");
		grdDatos.add(label1);
		txtCodigo = new BindingTextField(150);
		txtCodigo.setStyleName("Default");
		grdDatos.add(txtCodigo);
		Label label2 = new Label();
		label2.setText("Nombre");
		grdDatos.add(label2);
		txtNombre = new BindingTextField(200);
		txtNombre.setStyleName("Default");
		grdDatos.add(txtNombre);
		Label label3 = new Label();
		label3.setText("Icono");
		GridLayoutData label3LayoutData = new GridLayoutData();
		label3LayoutData.setAlignment(new Alignment(Alignment.DEFAULT,
				Alignment.TOP));
		label3.setLayoutData(label3LayoutData);
		grdDatos.add(label3);

		paneImagen = new PaneSubirImagen();
		paneImagen.setAncho(200);
		paneImagen.setAlto(150);

		// paneImagen = new ImageMap();
		// ResourceImageReference imageReference1 = new ResourceImageReference(
		// "/com/obelisco/vista/resource/image/icon/general/IconNofoto.jpg");
		// paneImagen.setImage(imageReference1);

		grdDatos.add(paneImagen);
	}

	public IServicioAdministrarOperaciones getServicioAdministrarOperaciones() {
		return servicioAdministrarOperaciones;
	}

	public void setServicioAdministrarOperaciones(
			IServicioAdministrarOperaciones servicioAdministrarOperaciones) {
		this.servicioAdministrarOperaciones = servicioAdministrarOperaciones;
	}

	public void onCancelar() {
		// TODO Auto-generated method stub

	}

	public void onConfirmarCambios(Object objeto, TipoFuncion tipo,
			String nombre) {
		// TODO Auto-generated method stub
		servicioAdministrarOperaciones.guardarOperacion(operacion);
	}

	public void onConfirmarEliminacion(Object object) {
		// TODO Auto-generated method stub

	}

	public void onConsultar(Object objeto) {
		// TODO Auto-generated method stub
		txtCodigo.setEnabled(false);
		txtNombre.setEnabled(false);
		paneImagen.setEnabled(false);


	}

	public void onCrear() {
		// TODO Auto-generated method stub

	}

	public void onFuncionPersonalizada(Object objeto, TipoFuncion funcion,
			String nombre) {
		// TODO Auto-generated method stub

	}

	public void onIncluir(Object objeto) {
		// TODO Auto-generated method stub
		
		txtCodigo.setEnabled(true);
		txtNombre.setEnabled(true);
		paneImagen.setEnabled(true);

	}

	public void onInicializar() {
		// TODO Auto-generated method stub
		
		txtCodigo.setBinding(operacion, "codigo");
		txtNombre.setBinding(operacion, "nombre");

		paneImagen.setBinding(operacion.getIcono(), "contenido");

	}

	public void onModificar(Object objeto) {
		// TODO Auto-generated method stub
		txtCodigo.setEnabled(false);
		txtNombre.setEnabled(true);
		paneImagen.setEnabled(true);

	}

	private Operacion operacion;

	public void onObjetoEntidad(Object objeto) {
		// TODO Auto-generated method stub
		operacion = (Operacion) objeto;
	}

	public boolean onValidarDatos(Object objeto, TipoFuncion tipo, String nombre) {
		// TODO Auto-generated method stub
		return true;
	}

	public void onListaParametros(List arg0) {
		// TODO Auto-generated method stub
		
	}
}
